package com.tuniu.agents.command;

import java.util.Map;

/**
 * Command action interface
 * Stateless design, all state information is passed through parameters
 */
public interface CommandAction<T> {

    /**
     * Executes the text output action by retrieving a message from parameters
     *
     * @param input   The input string (not used in this implementation)
     * @param params  Parameters containing the message to be output
     * @param context Context information (not used in this implementation)
     * @return The message retrieved from parameters as a string
     */
    T execute(String input, Map<String, Object> params, Map<String, Object> context);

    /**
     * Action type
     *
     * @return Action type
     */
    ActionType getActionType();
}
